{
  "name": "LINTER",
  "on": {
    "pull_request": null
  },
  "jobs": {
    "linter": {
      "runs-on": "ubuntu-latest",
      "env": {
        "OS": "ubuntu-latest",
        "QUICKLISP_DIST": "quicklisp",
        "LISP": "sbcl-bin"
      },
      "steps": [
        {
          "name": "Checkout Code",
          "uses": "actions/checkout@v3"
        },
        {
          "name": "Grant All Perms to Make Cache Restoring Possible",
          "run": "sudo mkdir -p /usr/local/etc/roswell\n                 sudo chown \"${USER}\" /usr/local/etc/roswell\n                 # Here the ros binary will be restored:\n                 sudo chown \"${USER}\" /usr/local/bin",
          "shell": "bash"
        },
        {
          "name": "Get Current Month",
          "id": "current-month",
          "run": "echo \"value=$(date -u \"+%Y-%m\")\" >> $GITHUB_OUTPUT",
          "shell": "bash"
        },
        {
          "name": "Cache Roswell Setup",
          "id": "cache",
          "uses": "actions/cache@v3",
          "with": {
            "path": "qlfile\nqlfile.lock\n~/.cache/common-lisp/\n~/.roswell\n/usr/local/etc/roswell\n/usr/local/bin/ros\n/usr/local/Cellar/roswell\n.qlot",
            "key": "a-${{ steps.current-month.outputs.value }}-${{ env.cache-name }}-ubuntu-latest-quicklisp-sbcl-bin-${{ hashFiles('qlfile.lock', '*.asd') }}"
          }
        },
        {
          "name": "Restore Path To Cached Files",
          "run": "echo $HOME/.roswell/bin >> $GITHUB_PATH\n                 echo .qlot/bin >> $GITHUB_PATH",
          "shell": "bash",
          "if": "steps.cache.outputs.cache-hit == 'true'"
        },
        {
          "name": "Setup Common Lisp Environment",
          "uses": "40ants/setup-lisp@v2",
          "with": {
            "asdf-system": "reblocks"
          },
          "if": "steps.cache.outputs.cache-hit != 'true'"
        },
        {
          "name": "Change dist to Ultralisp if qlfile does not exist",
          "run": "if [[ ! -e qlfile ]]; then echo 'dist ultralisp http://dist.ultralisp.org' > qlfile; fi",
          "shell": "bash"
        },
        {
          "name": "Update Qlot",
          "run": "qlot update --no-deps",
          "shell": "bash"
        },
        {
          "name": "Install SBLint wrapper",
          "run": "qlot exec ros install 40ants-linter",
          "shell": "bash"
        },
        {
          "name": "Run Linter",
          "run": "qlot exec 40ants-linter --system \"reblocks\"",
          "shell": "bash"
        }
      ]
    }
  }
}